//左移 每一位向左移动一位，末尾补0，相当于x2
let a = 0b0000010;
//      0b0000100

//console.log(a << 1);

//右移
// 有符号右移
// 移位的时候高位补的是符号位，整数补0 负数补1
let b = 0b00000011;
console.log(b >> 1);

//let c = 0b10000011;
// 
let c = -4;
//11111110
//11111101
//10000010
//原=>补 取反加1
//补=>原 减1取反
console.log(c >> 1);//-2
//无符号右移
//右移的时候最高位始终补0
//正数的话不变
//负数的话会变成正数
let d = 0b00000111;
console.log(d >>> 1);

let e = 0b10000111;
//    01000011
console.log(e >>> 1);//67